﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _008_英雄的战斗ing
{
    class Program
    {
        static void Main(string[] args)
        {
            //游戏角色属性设置引导
            Console.WriteLine("欢迎来到英雄对抗路");
            Console.WriteLine("请为红方英雄设置属性");
            Console.WriteLine("格式为：姓名 血量 攻击力 防御力");
            Console.WriteLine("(血量、攻击力、防御力皆为整数)");
            //获取字符串切割为数组进行传值
            string[] Arr = Console.ReadLine().Split(' ');
            Hero hero = new Hero(Arr[0],int.Parse(Arr[1]), int.Parse(Arr[2]), int.Parse(Arr[3]));

            //游戏角色属性设置引导
            Console.WriteLine("请为蓝方英雄设置属性");
            Console.WriteLine("格式为：姓名 血量 攻击力 防御力");
            Console.WriteLine("(血量、攻击力、防御力皆为整数)");

            //获取字符串切割为数组进行传值
            Arr = Console.ReadLine().Split(' ');
            Hero hero2 = new Hero(Arr[0], int.Parse(Arr[1]), int.Parse(Arr[2]), int.Parse(Arr[3]));

            //声明游戏开始
            Console.WriteLine("游戏开始了");

            //事先准备需要的字符串选项容器和回合计数器
            string temp = " ";
            int count = 0;
            //设一个循环来实现回合制游戏机制
            while (true)
            {
                //判断是不是第一回合开始，游戏术语略有不同
                if(count == 0)
                {
                    Console.WriteLine(hero.name + "先手,请选择攻击的对象或者放弃攻击");
                }
                else
                {
                    Console.WriteLine("轮到"+hero.name + "出手了,请选择攻击的对象或者放弃攻击");
                }
                //开始计数回合
                count++;
                
                //给玩家选项引导
                Console.WriteLine("攻击"+ hero.name + "请按1");
                Console.WriteLine("攻击"+ hero2.name + "请按2");
                Console.WriteLine("投降请按3（开始五个回合内不能投降）");
                temp = Console.ReadLine();
                //判断玩家选择的选项并完成选项内容
                if(Equals(temp,"1"))
                {
                    //调用攻击方法
                    hero.Attack(hero);
                }
                else if(Equals(temp, "2"))
                {
                    //调用攻击方法
                    hero.Attack(hero2);
                }
                else if (Equals(temp, "3"))
                {
                    //判断是否处于不可投降回合内
                    if(count < 5)
                    {
                        Console.WriteLine("真正的勇士敢于直面惨淡的人生，五个回合后才能投降！！");
                        Console.WriteLine("现在是第" + count + "个回合,该回合视为弃权");
                    }
                    else
                    {
                        //符合可投降条件退出循环
                        Console.WriteLine(hero.name+"已投降，"+hero2.name+"获得了胜利");
                        break;
                    }
                }

                //判断有无英雄被击杀
                if (hero.HP <= 0)
                {
                    Console.WriteLine( hero.name + "获得了胜利");
                    break;
                }else if (hero2.HP <= 0)
                {
                    Console.WriteLine(hero2.name + "获得了胜利");
                    break;
                }

                Console.WriteLine();Console.WriteLine();Console.WriteLine();

                Console.WriteLine("轮到" + hero2.name + "出手了,请选择攻击的对象或者放弃攻击");
                Console.WriteLine("攻击" + hero.name + "请按1");
                Console.WriteLine("攻击" + hero2.name + "请按2");
                Console.WriteLine("投降请按3（开始五个回合内不能投降）");
                temp = Console.ReadLine();
                if (Equals(temp, "1"))
                {
                    hero2.Attack(hero);
                }
                else if (Equals(temp, "2"))
                {
                    hero2.Attack(hero2);
                }
                else if (Equals(temp, "3"))
                {
                    if (count < 5)
                    {
                        Console.WriteLine("真正的勇士敢于直面惨淡的人生，五个回合后才能投降！！");
                        Console.WriteLine("现在是第"+count+"个回合,该回合视为弃权");
                    }
                    else
                    {
                        Console.WriteLine(hero2.name + "已投降，" + hero.name + "获得了胜利");
                        break;
                    }
                }

                if (hero.HP <= 0)
                {
                    Console.WriteLine(hero.name + "获得了胜利");
                    break;
                }
                else if (hero2.HP <= 0)
                {
                    Console.WriteLine(hero2.name + "获得了胜利");
                    break;
                }
                Console.WriteLine(); Console.WriteLine(); Console.WriteLine();

            }

            //简单的战斗
            Console.ReadKey();

        }


    }
}
